论文阅读:Objects as Points

论文信息: Xingyi Zhou,UT Austin, arxiv1904.07852
代码链接: https://github.com/xingyizhou/CenterNet
整体信息: 这篇文章题目言简意赅,就非常吸引人眼球。不同于CornerNet预测一对角点得到bbox,以及基于CornerNet改进的CenterNet预测三个点得到bbox,文章提出的CenterNet同样作为一种anchor-free的目标检测方法,化繁去简,直接将目标作为一个点去预测,彻底丢掉了nms等后处理操作,而且将这种方法应用到姿态估计和3D目标检测问题上。不得不说,足够Innovative,考虑精度和速度trade-off,在coco上也取得不俗的成绩:28.1%mAP/142FPS,37.4%mAP/52FPS,45.1%mAP/1.4FPS。

Motivation

       现有的目标检测方法,不论是oe-stage方法还是two-stage方法,在得到所有潜在目标框之后,都需要使用NMS(非极大值抑制)来处理同类目标重复的检测框,这种做法出列计算耗时之外,而且这种后处理操作不可导,无法做到端对端的训练。作者通过将目标作为一个点即目标的中心点,采用关键点估计方法预测中心点,再去预测目标尺寸。这种方法,相比于基于边界框的检测方法,可以做到端对端可导,更简单,更快速和更准确。如上图所示。

创新点

图1
       本文的CenterNet方法和anchor-based的one-stage目标检测方法类似,中心点可以看做是shape-agnostic(形状未知)的锚点,可以看做是一种隐式地anchors。和anchor-based方法的区别如上图示。

  • 在CenterNet中,分配的锚点仅仅是放在位置上,没有尺寸框。不需要手动设置阈值做前后景分类。(像Faster RCNN会将与GT IOU >0.7的作为前景,<0.3的作为背景);
  • 每个目标仅仅有一个正的锚点,因此不会用到NMS,通过提取关键点heatmap上局部峰值点(local peaks);
  • CenterNet相比较于其他目标检测方法而言(一般缩放16倍尺度),使用更大分辨率的输出特征图(缩放了4倍),因此无需用到多重特征图锚点;
  • 于其他基于关键点的目标检测方法相比(比如CornerNet,ExtremeNet),无需grouping过程以及后处理操作;

Preliminary

指定

表示输入图像,宽W,高H。生成的关键点heatmaps为

其中R表示输出stride,在CenterNet中设置为4,C表示关键点类别,比如在coco中C为80类目标。在预测的heatmaps中,

表示检测的关键点,

表示为背景。在CenterNet中,作者使用了三种全卷积encoder-decoder网络:hourglass,Resnet和DLA来预测$\hat{Y}$。关键点损失函数采用的是focal loss,如下公式所示:

此外,为了弥补因为输出stride造成的量化误差,作者另外设计了一个局部offset来补偿,其损失函数采用L1loss如下:

Objects as Points

指定

表示目标k(其类别为$c_k$),对应中心位置为

使用关键点预测器$\hat{Y}$预测所有关键点。此外回归每个目标k的大小

为了计算减少计算,d对所有目标使用单尺度预测,$\hat{S}\in R^{\frac{W}{R}\times \frac{H}{R}\times 2}$,因此可以在中心点位置添加L1 Loss:

整个目标损失函数如下:

实验结果

       在coco上训练了三种不同backbone的CenterNet:Resnet-101和DLA-34花费2.5天,hourglass-104花费5天。实验结果对比如下:

在精度和速度上的trade-off上相比,CenterNet相对来说还是比较优秀。此外,作者针对输入分辨率,目标中心点重叠、size损失函数、size损失的超参数和训练策略等方面做了很多ablation study,使得整个实验结果比较solid。

个人观点

(1)这篇Objects as Points 的CenterNet通过预测一个中心点解决了2D目标检测,3D目标检测以及姿态估计任务,完美的把这三个任务统一起来,从广度上来讲,很强很强。
(2)值得和另一篇CenterNet(Keypoint Triplets for Object Detection)进行比较,Keypoint Triplets则是通过中心点预测抑制CornerNet中存在的大量误检,这个更多的是incremental。
(3)从放出来的几篇基于keypoint的目标检测方法在coco上训练耗时来看,这类方法普遍存在训练耗时长的问题。